package busterminal.entity;

import busterminal.entity.service.VehicleType;

/**
 * Модель автобуса (реализация)
 */
public class BusModelImplementation extends AbstractEntityImplementation implements BusModel {

    /**
     * Название модели
     */
    private String modelName;
    /**
     * Тип транспортного средства, определяемый константой из {@link VehicleType}
     */
    private VehicleType vehicleType;

    /**
     * Конструктор по умолчанию
     */
    public BusModelImplementation() {
    }

    /**
     * Конструктор для сущности модель автобуса
     * @param modelName название модели
     * @param vehicleType тип транспортного средства, определяемый константой из {@link VehicleType}
     */
    public BusModelImplementation(String modelName, VehicleType vehicleType) {
        this.modelName = modelName;
        this.vehicleType = vehicleType;
    }

    /**
     * Получить название модели
     * @return название модели
     */
    @Override
    public String getModelName() {
        return modelName;
    }

    /**
     * Установить название модели
     * @param modelName название модели
     */
    @Override
    public void setModelName(String modelName) {
        this.modelName = modelName;
    }

    /**
     * Получить тип транспортного средства, определяемый константой из {@link VehicleType}
     * @return тип транспортного средства, определяемый константой из {@link VehicleType}
     */
    @Override
    public VehicleType getVehicleType() {
        return vehicleType;
    }

    /**
     * Установить тип транспортного средства, определяемый константой из {@link VehicleType}
     * @param vehicleType тип транспортного средства, определяемый константой из {@link VehicleType}
     */
    @Override
    public void setVehicleType(VehicleType vehicleType) {
        this.vehicleType = vehicleType;
    }

    /**
     * Метод, возвращающий текстовое представление объекта
     * @return текстовое представление объекта
     */
    @Override
    public String toString() {
        return "BusModel{" + "id=" + getId() + ", modelName=" + modelName + ", vehicleType=" + vehicleType + '}';
    }
}
